<?php
/**
 * 基本父类
 *
 * ============================================================================
 * 版权所有: (c) 2009-2011，<UEShop Inc>，并保留所有权利。
 * 网站地址: http://www.ueshop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * @author cmpan
 * @copyright   Copyright (c) 2009-2011 UEShop Inc. (http://www.ueshop.cn)
 * @license     http://www.ueshop.cn/1_0.txt
 */
abstract class UE_Object {
	protected $_errs = array();
	
	protected $_x = array();
	
	/**
	 * 获取属性
	 *
	 * @param string $x
	 * @return mixed
	 */
	public function __get($x) {
		if(isset($this->_x[$x])) {
			return $this->_x[$x];
		} else {
			return null;
		}
	}
	
	/**
	 * 设置属性
	 *
	 * @param string $x
	 * @param mixed $val
	 * @return UE_Object
	 */
	public function __set($x, $val) {
		$this->_x[$x] = $val;
		return $this;
	}
	
	/**
	 * 该属性是否已经设置
	 *
	 * @param string $x
	 * @return bool
	 */
	public function __isset($x) {
		return isset($this->_x[$x]);
	}
	
	/**
	 * 释放属性
	 *
	 * @param string $x
	 */
	public function __unset($x) {
		unset($this->_x[$x]);
	}
	
	/**
	 * 获取错误信息
	 * @return array
	 */
	public function getErrs() {
		return $this->_errs;
	}
	
	/**
	 * 获取最后一个错误的内容
	 * @return string
	 */
	public function getLastErr() {
		$err = end($this->_errs);
		reset($this->_errs);
		return $err;
	}
	
	/**
	 * 是否有错误
	 *
	 * @return bool
	 */
	public function hasErr() {
		return empty($this->_errs) ? false : true;
	}
	
	
	/**
	 * 设置错误信息
	 *
	 * @param mixed $msg
	 * @return UE_Object
	 */
	public function setErr($msg) {
		if(is_array($msg)) {
			foreach($msg as $err) {
			    $this->_errs[] = $err;
			}
		} else {
		    $this->_errs[] = $msg;
		}
		return $this;
	}
}
